const { inquireUser } = require("../service/user.service");
const { setAccessToken, setRefreshToken } = require("../utils/token");
const {
  AccessToken,
  RefreshToken,
} = require("../config/tokenHeader-constants");

class LoginController {
  /* 颁发令牌，返回数据 */
  async sign(ctx, next) {
    // 1.获取用户信息
    // console.log(ctx.userInfo);
    const { id, account } = ctx.userInfo;

    // 2.颁发令牌token
    // const token = jwt.sign({ id, account }, PRIVATE_KEY, {
    //   expiresIn: 24 * 60 * 60, // 过期时间
    //   algorithm: "RS256", // 加密方式：默认是HS256对称加密，这里用RS256非对称加密
    // });

    // 查询用户信息
    const result = await inquireUser(id);
    console.log(result);

    // 3.返回用户信息
    // ctx.set("Token", `${token}`);
    // 设置Access-Token和Refresh-Token响应头
    ctx.set(AccessToken, setAccessToken({ id, account }));
    ctx.set(RefreshToken, setRefreshToken({ id, account }));

    ctx.body = {
      code: 200,
      message: "用户登录成功~",
      data: {
        userInfo: result[0],
      },
    };
  }

  /* 测试是否授权成功 */
  test(ctx, next) {
    ctx.body = {
      code: 200,
      data: "成功",
    };
  }
}

module.exports = new LoginController();
